require("es6-promise").polyfill();
import axios from "axios";

var _baseURL = window.location.origin;
if (_baseURL.indexOf("localhost") != -1) {
  _baseURL = '/api/';  //开发
} else {
  _baseURL = _baseURL;//生产
}

export const Axios = axios.create({
  baseURL:_baseURL,
  timeout: 10000
});

//POST传参序列化(添加请求拦截器)
// 在发送请求之前做某件事
Axios.interceptors.request.use(
  config => {
    // 设置以 form 表单的形式提交参数，如果以 JSON 的形式提交表单，可忽略
    // if (config.method === "post") {
    //   // JSON 转换为 FormData
    //   const formData = new FormData();
    //   Object.keys(config.data).forEach(key =>
    //     formData.append(key, config.data[key])
    //   );
    //   config.data = formData;
    // }
    // 下面会说在什么时候存储 token
    if (localStorage.getItem('TOKEN')) {
      console.log("token:",localStorage.getItem('TOKEN'))
      config.headers.Authorization = localStorage.getItem('TOKEN');
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

//返回状态判断(添加响应拦截器)
Axios.interceptors.response.use(
  res => {
    //对响应数据做些事
    // if(!res.data.success){
    //    alert(res.error_msg)
    //    return Promise.reject(res)
    // }
    console.log("res:",res)
    return res;
  },
  error => {
    return error
  }
);

export default {
  install(Vue) {
    Object.defineProperty(Vue.prototype, "$http", { value: Axios });
  }
};
